/**
 * @author Ulil Cojti Lopez
 *
 */

import java.util.Vector;

public class StackVector<E> implements Ejecutor<E>{
	protected Vector<E> vectordatos;
	
	public StackVector(){
		vectordatos = new Vector<E>();
	}
	
	/**
	 *
	 * @param dato1 Es el dato que esta almacenado en el vector; es un operando
	 * @param dato2 Es el dato que se ingresa de ultimo y que sale primero; es un operando
	 * @param dato3 Es un operando
	 * @return resultado: devuelve un entero resultado de la operacion
	 */
	public int Operar(int dato1, int dato2, String dato3){
		int resultado = dato1;
		if(dato3.compareTo("+") == 0)
			resultado = dato1 + dato2;
		if(dato3.equals("*")== true)
			resultado = dato1 * dato2;
		if(dato3.equals("-")== true)
			resultado = dato1 - dato2;
		if(dato3.equals("/")== true)
			resultado = dato1/dato2;
		return resultado;	
	}

	/**
	 * @description coloca un operando en la pila
	 * @param ninguno
	 * @return No devuelve un valor
	 */
	@Override
	public void setObjeto(E objeto) {
		vectordatos.add(objeto);
	}

	/**
	 * @description obtiene un operando de la pila
	 * @param ninguno
	 * @return devuelve un operando de la ultima posicion de la pila
	 */
	@Override
	public E getObjeto() {
		return vectordatos.remove(vectordatos.size()-1);
	}

	/**
	 * @description Muestra en pantalla un caracter
	 * @param Ninguno
	 * @return Devuelve una representacion del contenido del vector en una cadena
	 */
	@Override
	public void imprimir() {
		System.out.println(vectordatos.toString());	
	}
}